package mx.gob.imss.reiman.clientes.model;

import java.io.Serializable;

/**
 * 
 * @author Alberto Dzul Calvillo
 * @version 1.0
 * 
 */
public class Persona implements Serializable {
	private static final long serialVersionUID = 1L;
	private String nss = "";
	private String curp;
	private String apellidoPaterno;
	private String apellidoMaterno;
	private String nombre;
	private String sexo;
	private String fechaNacimiento;
	private String rfc;
	private String unidad;
	private String agregadoMedico;
	private String telefono;
	private String idMunicipio;
	private String cp;
	private String calle;
	private String numeroInterior;
	private String numeroExterior;
	private String colonia;
	private String cveTipoMensaje;
	private String cveTipoServicio;
	private String fechaAccion;
	private String cveRFC;
	private String numAplicacion;
	private String tipoPaciente;
	private String fechaDefuncion;
	private String fechaLabores;
	private String fechaVigencia;
	private String registroPatronal;
	private String cvePREI;
	private String razonSocial;
	private String consultorio;
	private String turno;
	private String situacion;
	private String derechoIncapacidad;
	private String tipoPension;
	private String descripcionTipoPension;
	private String agregadoAfiliacion;
	private String idee;

	public Persona() {
		super();
		this.nss = "";
		this.curp = "";
		this.apellidoPaterno = "";
		this.apellidoMaterno = "";
		this.nombre = "";
		this.sexo = "";
		this.fechaNacimiento = "";
		this.rfc = "";
		this.unidad = "";
		this.agregadoMedico = "";
		this.telefono = "";
		this.idMunicipio = "";
		this.cp = "";
		this.calle = "";
		this.numeroInterior = "";
		this.numeroExterior = "";
		this.colonia = "";
		this.cveTipoMensaje = "";
		this.cveTipoServicio = "";
		this.fechaAccion = "";
		this.cveRFC = "";
		this.numAplicacion = "";
		this.tipoPaciente = "";
		this.fechaDefuncion = "";
		this.fechaLabores = "";
		this.fechaVigencia = "";
		this.registroPatronal = "";
		this.cvePREI = "";
		this.razonSocial = "";
		this.consultorio = "";
		this.turno = "";
		this.situacion = "";
		this.derechoIncapacidad = "";
		this.tipoPension = "";
		this.descripcionTipoPension = "";
		this.agregadoAfiliacion = "";
		this.idee = "";
	}

	public Persona(String nss, String curp, String apellidoPaterno,
			String apellidoMaterno, String nombre, String sexo,
			String fechaNacimiento, String rfc, String unidad,
			String agregadoMedico, String telefono, String idMunicipio,
			String cp, String calle, String numeroInterior,
			String numeroExterior, String colonia, String cveTipoMensaje,
			String cveTipoServicio, String fechaAccion, String cveRFC,
			String numAplicacion, String tipoPaciente, String fechaDefuncion,
			String fechaLabores, String fechaVigencia, String registroPatronal,
			String cvePREI, String razonSocial, String consultorio,
			String turno, String situacion, String derechoIncapacidad,
			String tipoPension, String descripcionTipoPension,
			String agregadoAfiliacion, String idee) {
		super();
		this.nss = nss;
		this.curp = curp;
		this.apellidoPaterno = apellidoPaterno;
		this.apellidoMaterno = apellidoMaterno;
		this.nombre = nombre;
		this.sexo = sexo;
		this.fechaNacimiento = fechaNacimiento;
		this.rfc = rfc;
		this.unidad = unidad;
		this.agregadoMedico = agregadoMedico;
		this.telefono = telefono;
		this.idMunicipio = idMunicipio;
		this.cp = cp;
		this.calle = calle;
		this.numeroInterior = numeroInterior;
		this.numeroExterior = numeroExterior;
		this.colonia = colonia;
		this.cveTipoMensaje = cveTipoMensaje;
		this.cveTipoServicio = cveTipoServicio;
		this.fechaAccion = fechaAccion;
		this.cveRFC = cveRFC;
		this.numAplicacion = numAplicacion;
		this.tipoPaciente = tipoPaciente;
		this.fechaDefuncion = fechaDefuncion;
		this.fechaLabores = fechaLabores;
		this.fechaVigencia = fechaVigencia;
		this.registroPatronal = registroPatronal;
		this.cvePREI = cvePREI;
		this.razonSocial = razonSocial;
		this.consultorio = consultorio;
		this.turno = turno;
		this.situacion = situacion;
		this.derechoIncapacidad = derechoIncapacidad;
		this.tipoPension = tipoPension;
		this.descripcionTipoPension = descripcionTipoPension;
		this.agregadoAfiliacion = agregadoAfiliacion;
		this.idee = idee;
	}

	public String getNss() {
		return nss;
	}

	public void setNss(String nss) {
		this.nss = nss;
	}

	public String getCurp() {
		return curp;
	}

	public void setCurp(String curp) {
		this.curp = curp;
	}

	public String getApellidoPaterno() {
		return apellidoPaterno;
	}

	public void setApellidoPaterno(String apellidoPaterno) {
		this.apellidoPaterno = apellidoPaterno;
	}

	public String getApellidoMaterno() {
		return apellidoMaterno;
	}

	public void setApellidoMaterno(String apellidoMaterno) {
		this.apellidoMaterno = apellidoMaterno;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}

	public String getSexo() {
		return sexo;
	}

	public void setSexo(String sexo) {
		this.sexo = sexo;
	}

	public String getFechaNacimiento() {
		return fechaNacimiento;
	}

	public void setFechaNacimiento(String fechaNacimiento) {
		this.fechaNacimiento = fechaNacimiento;
	}

	public String getRfc() {
		return rfc;
	}

	public void setRfc(String rfc) {
		this.rfc = rfc;
	}

	public String getUnidad() {
		return unidad;
	}

	public void setUnidad(String unidad) {
		this.unidad = unidad;
	}

	public String getAgregadoMedico() {
		return agregadoMedico;
	}

	public void setAgregadoMedico(String agregadoMedico) {
		this.agregadoMedico = agregadoMedico;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	public String getIdMunicipio() {
		return idMunicipio;
	}

	public void setIdMunicipio(String idMunicipio) {
		this.idMunicipio = idMunicipio;
	}

	public String getCp() {
		return cp;
	}

	public void setCp(String cp) {
		this.cp = cp;
	}

	public String getCalle() {
		return calle;
	}

	public void setCalle(String calle) {
		this.calle = calle;
	}

	public String getNumeroInterior() {
		return numeroInterior;
	}

	public void setNumeroInterior(String numeroInterior) {
		this.numeroInterior = numeroInterior;
	}

	public String getNumeroExterior() {
		return numeroExterior;
	}

	public void setNumeroExterior(String numeroExterior) {
		this.numeroExterior = numeroExterior;
	}

	public String getColonia() {
		return colonia;
	}

	public void setColonia(String colonia) {
		this.colonia = colonia;
	}

	public String getCveTipoMensaje() {
		return cveTipoMensaje;
	}

	public void setCveTipoMensaje(String cveTipoMensaje) {
		this.cveTipoMensaje = cveTipoMensaje;
	}

	public String getCveTipoServicio() {
		return cveTipoServicio;
	}

	public void setCveTipoServicio(String cveTipoServicio) {
		this.cveTipoServicio = cveTipoServicio;
	}

	public String getFechaAccion() {
		return fechaAccion;
	}

	public void setFechaAccion(String fechaAccion) {
		this.fechaAccion = fechaAccion;
	}

	public String getCveRFC() {
		return cveRFC;
	}

	public void setCveRFC(String cveRFC) {
		this.cveRFC = cveRFC;
	}

	public String getNumAplicacion() {
		return numAplicacion;
	}

	public void setNumAplicacion(String numAplicacion) {
		this.numAplicacion = numAplicacion;
	}

	public String getTipoPaciente() {
		return tipoPaciente;
	}

	public void setTipoPaciente(String tipoPaciente) {
		this.tipoPaciente = tipoPaciente;
	}

	public String getFechaDefuncion() {
		return fechaDefuncion;
	}

	public void setFechaDefuncion(String fechaDefuncion) {
		this.fechaDefuncion = fechaDefuncion;
	}

	public String getFechaLabores() {
		return fechaLabores;
	}

	public void setFechaLabores(String fechaLabores) {
		this.fechaLabores = fechaLabores;
	}

	public String getFechaVigencia() {
		return fechaVigencia;
	}

	public void setFechaVigencia(String fechaVigencia) {
		this.fechaVigencia = fechaVigencia;
	}

	public String getRegistroPatronal() {
		return registroPatronal;
	}

	public void setRegistroPatronal(String registroPatronal) {
		this.registroPatronal = registroPatronal;
	}

	public String getCvePREI() {
		return cvePREI;
	}

	public void setCvePREI(String cvePREI) {
		this.cvePREI = cvePREI;
	}

	public String getRazonSocial() {
		return razonSocial;
	}

	public void setRazonSocial(String razonSocial) {
		this.razonSocial = razonSocial;
	}

	public String getConsultorio() {
		return consultorio;
	}

	public void setConsultorio(String consultorio) {
		this.consultorio = consultorio;
	}

	public String getTurno() {
		return turno;
	}

	public void setTurno(String turno) {
		this.turno = turno;
	}

	public String getSituacion() {
		return situacion;
	}

	public void setSituacion(String situacion) {
		this.situacion = situacion;
	}

	public String getDerechoIncapacidad() {
		return derechoIncapacidad;
	}

	public void setDerechoIncapacidad(String derechoIncapacidad) {
		this.derechoIncapacidad = derechoIncapacidad;
	}

	public String getTipoPension() {
		return tipoPension;
	}

	public void setTipoPension(String tipoPension) {
		this.tipoPension = tipoPension;
	}

	public String getDescripcionTipoPension() {
		return descripcionTipoPension;
	}

	public void setDescripcionTipoPension(String descripcionTipoPension) {
		this.descripcionTipoPension = descripcionTipoPension;
	}

	public String getAgregadoAfiliacion() {
		return agregadoAfiliacion;
	}

	public void setAgregadoAfiliacion(String agregadoAfiliacion) {
		this.agregadoAfiliacion = agregadoAfiliacion;
	}

	public String getIdee() {
		return idee;
	}

	public void setIdee(String idee) {
		this.idee = idee;
	}

	public String getNombreCompleto() {
		return apellidoPaterno + " " + apellidoMaterno + " " + nombre;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime
				* result
				+ ((agregadoAfiliacion == null) ? 0 : agregadoAfiliacion
						.hashCode());
		result = prime * result
				+ ((agregadoMedico == null) ? 0 : agregadoMedico.hashCode());
		result = prime * result
				+ ((apellidoMaterno == null) ? 0 : apellidoMaterno.hashCode());
		result = prime * result
				+ ((apellidoPaterno == null) ? 0 : apellidoPaterno.hashCode());
		result = prime * result + ((calle == null) ? 0 : calle.hashCode());
		result = prime * result + ((colonia == null) ? 0 : colonia.hashCode());
		result = prime * result
				+ ((consultorio == null) ? 0 : consultorio.hashCode());
		result = prime * result + ((cp == null) ? 0 : cp.hashCode());
		result = prime * result + ((curp == null) ? 0 : curp.hashCode());
		result = prime * result + ((cvePREI == null) ? 0 : cvePREI.hashCode());
		result = prime * result + ((cveRFC == null) ? 0 : cveRFC.hashCode());
		result = prime * result
				+ ((cveTipoMensaje == null) ? 0 : cveTipoMensaje.hashCode());
		result = prime * result
				+ ((cveTipoServicio == null) ? 0 : cveTipoServicio.hashCode());
		result = prime
				* result
				+ ((derechoIncapacidad == null) ? 0 : derechoIncapacidad
						.hashCode());
		result = prime
				* result
				+ ((descripcionTipoPension == null) ? 0
						: descripcionTipoPension.hashCode());
		result = prime * result
				+ ((fechaAccion == null) ? 0 : fechaAccion.hashCode());
		result = prime * result
				+ ((fechaDefuncion == null) ? 0 : fechaDefuncion.hashCode());
		result = prime * result
				+ ((fechaLabores == null) ? 0 : fechaLabores.hashCode());
		result = prime * result
				+ ((fechaNacimiento == null) ? 0 : fechaNacimiento.hashCode());
		result = prime * result
				+ ((fechaVigencia == null) ? 0 : fechaVigencia.hashCode());
		result = prime * result
				+ ((idMunicipio == null) ? 0 : idMunicipio.hashCode());
		result = prime * result + ((idee == null) ? 0 : idee.hashCode());
		result = prime * result + ((nombre == null) ? 0 : nombre.hashCode());
		result = prime * result + ((nss == null) ? 0 : nss.hashCode());
		result = prime * result
				+ ((numAplicacion == null) ? 0 : numAplicacion.hashCode());
		result = prime * result
				+ ((numeroExterior == null) ? 0 : numeroExterior.hashCode());
		result = prime * result
				+ ((numeroInterior == null) ? 0 : numeroInterior.hashCode());
		result = prime * result
				+ ((razonSocial == null) ? 0 : razonSocial.hashCode());
		result = prime
				* result
				+ ((registroPatronal == null) ? 0 : registroPatronal.hashCode());
		result = prime * result + ((rfc == null) ? 0 : rfc.hashCode());
		result = prime * result + ((sexo == null) ? 0 : sexo.hashCode());
		result = prime * result
				+ ((situacion == null) ? 0 : situacion.hashCode());
		result = prime * result
				+ ((telefono == null) ? 0 : telefono.hashCode());
		result = prime * result
				+ ((tipoPaciente == null) ? 0 : tipoPaciente.hashCode());
		result = prime * result
				+ ((tipoPension == null) ? 0 : tipoPension.hashCode());
		result = prime * result + ((turno == null) ? 0 : turno.hashCode());
		result = prime * result + ((unidad == null) ? 0 : unidad.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null) {
			return false;
		}
		if (!(obj instanceof Persona)) {
			return false;
		}
		Persona other = (Persona) obj;
		if (agregadoAfiliacion == null) {
			if (other.agregadoAfiliacion != null) {
				return false;
			}
		} else if (!agregadoAfiliacion.equals(other.agregadoAfiliacion)) {
			return false;
		}
		if (agregadoMedico == null) {
			if (other.agregadoMedico != null) {
				return false;
			}
		} else if (!agregadoMedico.equals(other.agregadoMedico)) {
			return false;
		}
		if (apellidoMaterno == null) {
			if (other.apellidoMaterno != null) {
				return false;
			}
		} else if (!apellidoMaterno.equals(other.apellidoMaterno)) {
			return false;
		}
		if (apellidoPaterno == null) {
			if (other.apellidoPaterno != null) {
				return false;
			}
		} else if (!apellidoPaterno.equals(other.apellidoPaterno)) {
			return false;
		}
		if (calle == null) {
			if (other.calle != null) {
				return false;
			}
		} else if (!calle.equals(other.calle)) {
			return false;
		}
		if (colonia == null) {
			if (other.colonia != null) {
				return false;
			}
		} else if (!colonia.equals(other.colonia)) {
			return false;
		}
		if (consultorio == null) {
			if (other.consultorio != null) {
				return false;
			}
		} else if (!consultorio.equals(other.consultorio)) {
			return false;
		}
		if (cp == null) {
			if (other.cp != null) {
				return false;
			}
		} else if (!cp.equals(other.cp)) {
			return false;
		}
		if (curp == null) {
			if (other.curp != null) {
				return false;
			}
		} else if (!curp.equals(other.curp)) {
			return false;
		}
		if (cvePREI == null) {
			if (other.cvePREI != null) {
				return false;
			}
		} else if (!cvePREI.equals(other.cvePREI)) {
			return false;
		}
		if (cveRFC == null) {
			if (other.cveRFC != null) {
				return false;
			}
		} else if (!cveRFC.equals(other.cveRFC)) {
			return false;
		}
		if (cveTipoMensaje == null) {
			if (other.cveTipoMensaje != null) {
				return false;
			}
		} else if (!cveTipoMensaje.equals(other.cveTipoMensaje)) {
			return false;
		}
		if (cveTipoServicio == null) {
			if (other.cveTipoServicio != null) {
				return false;
			}
		} else if (!cveTipoServicio.equals(other.cveTipoServicio)) {
			return false;
		}
		if (derechoIncapacidad == null) {
			if (other.derechoIncapacidad != null) {
				return false;
			}
		} else if (!derechoIncapacidad.equals(other.derechoIncapacidad)) {
			return false;
		}
		if (descripcionTipoPension == null) {
			if (other.descripcionTipoPension != null) {
				return false;
			}
		} else if (!descripcionTipoPension.equals(other.descripcionTipoPension)) {
			return false;
		}
		if (fechaAccion == null) {
			if (other.fechaAccion != null) {
				return false;
			}
		} else if (!fechaAccion.equals(other.fechaAccion)) {
			return false;
		}
		if (fechaDefuncion == null) {
			if (other.fechaDefuncion != null) {
				return false;
			}
		} else if (!fechaDefuncion.equals(other.fechaDefuncion)) {
			return false;
		}
		if (fechaLabores == null) {
			if (other.fechaLabores != null) {
				return false;
			}
		} else if (!fechaLabores.equals(other.fechaLabores)) {
			return false;
		}
		if (fechaNacimiento == null) {
			if (other.fechaNacimiento != null) {
				return false;
			}
		} else if (!fechaNacimiento.equals(other.fechaNacimiento)) {
			return false;
		}
		if (fechaVigencia == null) {
			if (other.fechaVigencia != null) {
				return false;
			}
		} else if (!fechaVigencia.equals(other.fechaVigencia)) {
			return false;
		}
		if (idMunicipio == null) {
			if (other.idMunicipio != null) {
				return false;
			}
		} else if (!idMunicipio.equals(other.idMunicipio)) {
			return false;
		}
		if (idee == null) {
			if (other.idee != null) {
				return false;
			}
		} else if (!idee.equals(other.idee)) {
			return false;
		}
		if (nombre == null) {
			if (other.nombre != null) {
				return false;
			}
		} else if (!nombre.equals(other.nombre)) {
			return false;
		}
		if (nss == null) {
			if (other.nss != null) {
				return false;
			}
		} else if (!nss.equals(other.nss)) {
			return false;
		}
		if (numAplicacion == null) {
			if (other.numAplicacion != null) {
				return false;
			}
		} else if (!numAplicacion.equals(other.numAplicacion)) {
			return false;
		}
		if (numeroExterior == null) {
			if (other.numeroExterior != null) {
				return false;
			}
		} else if (!numeroExterior.equals(other.numeroExterior)) {
			return false;
		}
		if (numeroInterior == null) {
			if (other.numeroInterior != null) {
				return false;
			}
		} else if (!numeroInterior.equals(other.numeroInterior)) {
			return false;
		}
		if (razonSocial == null) {
			if (other.razonSocial != null) {
				return false;
			}
		} else if (!razonSocial.equals(other.razonSocial)) {
			return false;
		}
		if (registroPatronal == null) {
			if (other.registroPatronal != null) {
				return false;
			}
		} else if (!registroPatronal.equals(other.registroPatronal)) {
			return false;
		}
		if (rfc == null) {
			if (other.rfc != null) {
				return false;
			}
		} else if (!rfc.equals(other.rfc)) {
			return false;
		}
		if (sexo == null) {
			if (other.sexo != null) {
				return false;
			}
		} else if (!sexo.equals(other.sexo)) {
			return false;
		}
		if (situacion == null) {
			if (other.situacion != null) {
				return false;
			}
		} else if (!situacion.equals(other.situacion)) {
			return false;
		}
		if (telefono == null) {
			if (other.telefono != null) {
				return false;
			}
		} else if (!telefono.equals(other.telefono)) {
			return false;
		}
		if (tipoPaciente == null) {
			if (other.tipoPaciente != null) {
				return false;
			}
		} else if (!tipoPaciente.equals(other.tipoPaciente)) {
			return false;
		}
		if (tipoPension == null) {
			if (other.tipoPension != null) {
				return false;
			}
		} else if (!tipoPension.equals(other.tipoPension)) {
			return false;
		}
		if (turno == null) {
			if (other.turno != null) {
				return false;
			}
		} else if (!turno.equals(other.turno)) {
			return false;
		}
		if (unidad == null) {
			if (other.unidad != null) {
				return false;
			}
		} else if (!unidad.equals(other.unidad)) {
			return false;
		}
		return true;
	}

	@Override
	public String toString() {
		return "Persona [nss=" + nss + ", curp=" + curp + ", apellidoPaterno="
				+ apellidoPaterno + ", apellidoMaterno=" + apellidoMaterno
				+ ", nombre=" + nombre + ", sexo=" + sexo
				+ ", fechaNacimiento=" + fechaNacimiento + ", rfc=" + rfc
				+ ", unidad=" + unidad + ", agregadoMedico=" + agregadoMedico
				+ ", telefono=" + telefono + ", idMunicipio=" + idMunicipio
				+ ", cp=" + cp + ", calle=" + calle + ", numeroInterior="
				+ numeroInterior + ", numeroExterior=" + numeroExterior
				+ ", colonia=" + colonia + ", cveTipoMensaje=" + cveTipoMensaje
				+ ", cveTipoServicio=" + cveTipoServicio + ", fechaAccion="
				+ fechaAccion + ", cveRFC=" + cveRFC + ", numAplicacion="
				+ numAplicacion + ", tipoPaciente=" + tipoPaciente
				+ ", fechaDefuncion=" + fechaDefuncion + ", fechaLabores="
				+ fechaLabores + ", fechaVigencia=" + fechaVigencia
				+ ", registroPatronal=" + registroPatronal + ", cvePREI="
				+ cvePREI + ", razonSocial=" + razonSocial + ", consultorio="
				+ consultorio + ", turno=" + turno + ", situacion=" + situacion
				+ ", derechoIncapacidad=" + derechoIncapacidad
				+ ", tipoPension=" + tipoPension + ", descripcionTipoPension="
				+ descripcionTipoPension + ", agregadoAfiliacion="
				+ agregadoAfiliacion + ", idee=" + idee + "]";
	}
}